1. Field of the Invention
The present invention relates to a method, system, and program for performing program specific operations during the un-installation of a program from a computer system.
2. Description of the Related Art
An installer program is a software program that enables a programmer to write specific code to install a given application program onto the drives of a computer. The installation is conducted in a way that enables the given application program to work correctly with the computer's environment, including its operating system. There are several types of installers. For example, Java installers and operating system specific installers, (e.g., Microsoft Windows installers, and International Business Machines (“IBM”) OS/2 and AIX operating system installers, etc). Many of the installer programs existing today have various limitations in their functionality as discussed below.
One type of Java installer is provided by a software company known as Install Shield. Currently, the functionality and configurability of this Java installer is somewhat limited. For example, the Java installer provides default panels, but the text cannot be changed or configured. Also, this Java installer is not easy to customize. In other words, a programmer cannot easily add a function that is not provided by the installer program. In addition, the current Java installer provides only limited registry support.
A registry is a central repository for all possible information for the computer such as hardware configurations and software settings, etc. The registry maintains information on installed components. A programmer or user can access the registry to determine information about installed products, based upon what the user/programmer placed into the registry or what information is useful to the user. Presently, the Java installer only works with a Microsoft Windows' registry; and the support provided with Microsoft Windows is limited. For example, the current Java installer does not enable the Windows' system registry to be updated directly. Instead, the keys to update in the registry are in a file which must be imported into the registry through a system call. It would be desirable if such a Java installer program supported multiple directories, splash screens (which are images that come up while a software product is being installed), and multiple languages instead of only English. Furthermore, it would be desirable for a given installer program to be more broadly applicable to other environments and operating systems. Although Install Shields' Java installer is tailored to Java, it is also geared somewhat for the Windows' operating system as discussed above in terms of the Windows' registry support provided.
Another Java installer is called “Install Anywhere” from ZeroG. This Java installer program also has a default panel that is not configurable, (e.g., the order in which panels appear is not customizable). Likewise, registry support is limited. A user/programmer updates a registry from a file using a “reg_edit” command. Although this installer program enables a user/programmer to add a few items into the registry, the registry cannot be queried. In addition, other registry functional features are not available. Likewise, there is no multiple directory support, and no national language support. Also, it does not support multiple operating systems, (i.e., there is no OS/2 or AIX specific support).
Eclipse is an open source community, whose projects are focused on building an open development platform comprised of extensible frameworks, tools and runtimes for building, deploying and managing software across the lifecycle. Eclipse projects provide tools and frameworks that span the entire software development lifecycle, including modeling, development, deployment tools, reporting, data manipulation, testing and profiling. The tools and frameworks are primarily focused on building JEE, web services and web applications. Eclipse also provides support for other languages, such as C/C++, PHP, and others.
However, neither Java nor Eclipse provides an API to interact with the OS in a way which allows for the creation and removal of program groups and program shortcuts. Therefore, there exists a need for an Eclipse application assembler to create program groups and program shortcuts during install and remove the created program groups and shortcuts during un-install.